1. Field of the Invention
The invention generally relates to computer networks and, more particularly, to a technique for reliably utilizing resources of a computer network using a mobile computer.
2. Description of the Related Art
A computer typically includes a processor for executing instructions and processing data, and a memory for storing these instructions and data (collectively referred to hereinafter as "information"). Additional information may be further stored by the computer on various types of storage devices, such as floppy disks, hard disks, compact-disk read-only memories (CD-ROMs), "ZIP" drives and magnetic tapes. Some of these devices are removable while others are fixed. A removable device, such as a floppy disk, must be inserted into ("mounted on") a drive to be accessed by the computer. As its name implies, the removable device can be removed ("dismounted") from the drive, e.g., to transport the information stored on the device to another computer. A fixed device, such as a hard disk, is permanently connected to the computer and is commonly referred to as a "fixed drive."
Since the storage devices provide the computer with the ability to accommodate large quantities of information, the information is often organized in a manner that facilitates quick and efficient access by a user. Typically the information is organized as a hierarchy of volumes, directories and files that is analogous to the organization of paper information in an office. For instance, a computer "file" stores related information, such as the text of a word-processing document or the instructions and data that make up a computer program. The file is typically selected by the user from among other information on a storage device by the issuance of a specification, i.e., a string of characters containing at least one part, depending on the type of information selected.
Each file has a set of attributes, one of which is a file name. The filename typically consists of a first part (which is useful in identifying the file to a user) and a second part (which identifies the kind of information stored in the file) separated by a dot. For example, a word processing document that contains a resume might be named "RESUME.DOC". Some file properties, such as the size of the file and the date of the most recent modification of the file, are informational and are assigned to the file by the computer; these attributes typically cannot be changed by the user. Other attributes, such as the read-only attribute, can be changed by the user.
Volumes are the fixed and mounted removable storage devices that are accessible to the computer. Each volume on the computer is generally identified by a unique, single "drive letter" followed by a colon, e.g. "C:". These drive letters are generally assigned in alphabetical order. Each volume further includes one or more directories. A directory is much like an index, in that the directory contains a plurality of entries that catalog the names and attributes of related files stored on the volume. Each entry also includes an address of the corresponding file stored on the volume. Thus, when the user attempts to access a file, the directory is consulted to ascertain if the type of access (e.g. read, write, delete or execute) is allowed and, if so, the directory is further consulted to locate the file on the volume.
A directory may also contain subdirectories, each of which may further contain files and/or additional subdirectories. The user or computer program can specify in which directory or subdirectory a file is to be created and can move a file from one directory or subdirectory to another. Hereinafter, both directories and subdirectories are simply referred to as "directories."
A "full-file" specification typically includes the volume (drive letter) and directory in which the file is stored, together with the name of the file. A path to a computer resource (such as a volume, directory or file) includes as much of a full file-specification, beginning with the drive letter, as necessary to uniquely identify the resource. For example, a path to a directory includes the drive letter, directory name and any ancestor directory names. Before accessing a resource, the user (or software) must specify the path to the resource.
An operating system manages a computer's resources by, inter alia, controlling access to those resources by application programs. For example to access a specified file on a volume, an application program passes the file's specification to the operating system, which reads the specified directory on the specified volume to locate the file. The operating system then uses the attributes stored in the directory to prevent unauthorized access to the resources, such as by blocking write operations to a "read-only" file. The operating system also assigns drive letters to all the volumes connected to the computer. Application programs acquire a view of these available resource volumes by first requesting a list of drive letters from the operating system and then examining the directories stored on the volumes associated with the drive letters.
In many cases, users of several computers require ready access to a plurality of files. Exchanging these files on removable devices is awkward at best, and becomes impractical when the computers are separated from each other by large distances. To overcome this problem, the computers may be interconnected by wireline or wireless communication links to form a computer network. If one of the computers (a "client") requires access to a resource, e.g. a file, that is stored by another computer (a "server"), the client sends a request for the resource over the communication link to the server and the server responds by sending the requested resource back to the client.
A server can be configured to serve individual files, directories and/or volumes. A network redirector is software that is executed by a client which makes these served network resources appear as though they are volumes connected directly to the client. The redirector creates this illusion by assigning a drive letter to each served network resource so software executed by the client can access the resource as though it were a "local" volume. Functionally, the redirector (a) intercepts requests from the software to access the served resources, i.e., requests to access resources whose specifications include one of the network drive letters; (b) forwards the requests to the appropriate servers; (c) receives information returned by the servers; and (d) supplies the information to the requesting software. For a computer connected to a network, drive letters present a unified view, i.e., a namespace, of both local and network resources. Each served network resource typically appears as a separate drive letter (commonly referred to as a "network drive").
Network resources can be specified by schemes other than by drive letter and path. One such scheme, called the Universal Convention (UNC) uses the format .backslash..backslash.&lt;network resource&gt;.backslash.&lt;path&gt;. The UNC format is well known and, thus, will not be described further herein.
Network resources other than volumes, directories and files can also be served to clients. For example, a printer server enables many client computers to share a printer that is connected to the server. When a printer is connected directly to a computer, it is plugged into either a printer port (such as "LPT1:") or a communication port (such as "COM1:") of the computer, and application programs send print requests to the port. Served printers are represented by redirected ports on the client computer, in the same way that served volumes are represented by redirected drive letters. That is, the network redirector intercepts print requests that are sent to the redirected port and the redirector sends these requests to the appropriate printer server. The server typically queues these requests and fulfills them according to a first-in-first-out (FIFO) or priority-driven scheme.
In a peer-to-peer network, each computer can play a dual role, i.e., the roles of a client and a server. In other words, a single computer can both access resources through other computers (which act as servers) and serve resources to other computers (which act as clients). On the other hand, in a server-centered network each computer is designate as either a server or a client, but not both. In some large server-centered networks, certain frequently-accessed files, directories, volumes, or even whole servers are duplicated. These duplicated resources are distributed throughout the network to reduce the workload placed on any single server and to place the duplicates close to concentrations of clients. Clients generally request services from the closest servers to minimize the time consumed when exchanging information between the computers.
A user of a client computer must typically "log in" to a network before gaining access to the network's resources. Logging in typically involves providing a correct password to the computer; the correct password ensures that the user is authorized to use the network resources. In most networks if the user requires access to resources that are served by both a first and a second server, the user must log into both of those servers. (The user generally can be logged into several servers at one time.) When a user logs into a server, the client computer typically executes a login script, which is an interpreted computer program that contains a set of instructions for "making" network resources available to the user. That is, the login script configures the network redirector to map (to drive letters and/or redirected ports) the resources provided (served) by the server. For example, the executed script associates a drive letter with a volume of disk storage on the network.
Login scripts are typically stored at a central location of the network and are executed by a login script interpreter resident on the client computer. Several login scripts are typically provided by a network administrator during network installations, although the script may be optionally provided by the user. However login scripts can be quite complex and difficult to maintain, particularly in situations where a user has logged into several servers. The user must further remember the name and password of each server, and must perform the steps necessary to log into each of the servers.
Some network operating systems, such as the NetWare (Version 4) operating system manufactured by Novell, Inc., manage resources in addition to files, directories, volumes and printers. For example, the NetWare system has a distributed, hierarchical database of network information called NetWare Directory Services (NDS). NDS stores, among other things, information about users, access rights and servers. Collectively, entities that are stored and described by NDS are called objects. Some objects list sets of resources (including resources provided by more than one server) that are available to individual users, while other objects limit access to the resources to certain users. NDS avoids the problems associated with logging into several servers by requiring a user of a client computer to simply log into NDS. NDS then uses information provided by a network administrator to connect the client computer to a predetermined set of resources and to limit access to these resources, such as preventing write access to certain files.
Some computers remain connected to a network at all times and thus have continuous access to the network's resources; others are connected to the network only at certain times. During those unconnected times, users of these latter mobile computers, e.g., portable "lap-top" computers, generally do not have access to the network's resources. Mobile computers occasionally connect to the network to, e.g., obtain updated versions of files from a server or to "upload" files from the computer to the server. When connected to the network, the user may also copy files from the server to its mobile computer, although such copying must be selective because the local disk space on the computer makes it impractical to copy the entire network environment.
One problem with the mobile computer involves the differing views of the available resources that are presented to a user when the computer is connected to and disconnected from the network. For example, the copied files are generally stored on drive letters of the mobile computer that are different from the drive letters storing the original files on the server. Accordingly the user must reconfigure application programs to refer to either the local disk or the network drive, depending on the connection status, i.e., connection or disconnection with the network, of the mobile computer.
Since there is no printer server available when the mobile computer is disconnected from the network, the user must save documents destined for the printer until the computer is reconnected to the network. This arrangement is rather burdensome in that it forces the user to interact differently with application programs again depending upon the connection state of the computer. In addition large networks, such as those spanning several buildings, generally provide many points at which computers can be connected to the network. Each time the computer connects to one of these points, the user must ascertain the closest printer server and then configure the network redirector to use that server.
When the mobile computer is reconnected to the network, its files must be synchronized with the corresponding files on the servers. That is, the user must ascertain which version of each file (e.g., the version stored on the computer or the version stored on the server) is "more-current", typically by comparing the contents of the two files. The user then uses that version of the file to update the less-current version of the file. If many pairs of files are involved or if the files are large, the comparison operations may become burdensome.
It is therefore an objective of the invention to provide selective access to network resources from a computer despite the connection status of the computer with respect to the network.
Other objectives will, in part, be obvious and will, in part, appear hereinafter.